const express = require("express")
const app = express()
// 期望，注册和登录能展示的操作数据库
const user = require("./user");
const uuid = require("uuid");

// 有静态资源响应
app.use( express.static("./www") );
app.use( express.urlencoded() );

// 有登录接口
app.get("/login", async (req,res,next)=>{
    const {username, password} = req.query;
    // 获取原用户集合（查询数据库信息）
    const data = await user.find({username});
    // 用户名不存在，未注册
    if(data.length < 1){
        res.send({
            code: 0,
            msg: "用户名不存在"
        })
    }else if(data[0].password === password){
        // 密码匹配，登录成功

        // 思考：还需要做什么事？

        res.send({
            code: 1,
            msg: "登陆成功"
        })
    }else{
        // 密码不匹配，登录失败
        res.send({
            code: 2,
            msg: "密码不对"
        })
    }
})

// 有注册接口
app.post("/register", async (req,res,next)=>{
    const {username, password} = req.body;
    // 获取到原用户集合(查询数据库信息)
    const data = await user.find({username});
    // 查找是否有相同的用户名
    if(data.length<1){
        // 将当前用户信息添加到数据库
        await user.insertMany({
            userId: "user-" + uuid.v1(),
            username,
            password,
            regTime: Date.now()
        });
        // 注册成功
        res.send( JSON.stringify({
            code: 1,
            msg: "注册成功"
        }) )
    }else{
        // 用户名重复
        res.send( JSON.stringify({
            code: 0,
            msg: "用户名重复"
        }) )
    }
})

// 挂载到计算机的指定端口
app.listen(3000);